package com.chengcang.api.modules.busi.service;

import com.chengcang.api.modules.busi.dto.BusiDemandDTO;
import com.chengcang.api.modules.busi.vo.BusiDemandDetailVO;
import com.chengcang.api.modules.busi.dto.TransferOrderDTO;
import com.chengcang.api.modules.busi.entity.BusiDemandEntity;
import com.chengcang.api.modules.busi.vo.BusiDemandVO;
import com.chengcang.common.page.PageData;
import com.chengcang.common.service.CrudService;
import com.chengcang.common.utils.Result;

import java.util.Map;

/**
 * 需求接口
 *
 * @author bibajin
 * @since 1.0.0 2023-01-10
 */
public interface BusiDemandService extends CrudService<BusiDemandEntity, BusiDemandDTO> {


    void transfer(TransferOrderDTO transferOrderDto);

    /**
     * 保存需求
     * @param dto
     */
    void saveDemand(BusiDemandDTO dto);

    /**
     * 取消需求
     * @param id
     * @param reason
     */
    void closeDemand(Long id, String reason);

    /**
     * 查询需求详情
     * @param id
     * @return
     */
    BusiDemandDetailVO getDeamndDetailByTenantId(Long id);

    /**
     * 获取默认的发票抬头和地址
     * @return
     */
    Result<BusiDemandDetailVO> getInvoiceAndAddress(Long demandId);


    /**
     * 履约分页查询
     *
     * @param params
     * @return
     */
    PageData<BusiDemandVO> appoint(Map<String, Object> params);

    /**
     * 分页
     * @param params
     * @return
     */
    PageData<BusiDemandVO> pageVo(Map<String, Object> params);
}
